The present invention relates generally to software migration and, more particularly, to the migration of control over a processing element from an original software system to a replacement software system.
Performing a software upgrade on computer hardware which is providing services to users or other computer devices presents significant challenges to maintaining the availability of such services during the upgrade. This is particularly the case when the services of the computer hardware are provided at least in part at the direction of the software being replaced in the upgrade. The process of upgrading or replacing the software that controls the computer hardware is often referred to as a software migration and involves replacing the original software with replacement software. During a conventional software migration, the services influenced by the operation of the original software are typically unavailable until the software migration is complete. Such conventional techniques can result in significant periods during which time the computer hardware is unable to provide services controlled by the software being replaced. This problem can become more pronounced in circumstances where there is a need for reliable quality of service, such as in networks and other systems where a high degree of availability may be required for certain services.
A known solution to such software migration has been to replace the computer hardware with new hardware programmed to provide the new or modified functionality or performance desired. This technique provides a rather crude approach to modifying the services provided by the computer hardware and results in undesirable and extended outages when the computer hardware is unable to support the services it is expected to provide to users, systems or other devices. Such extended outages can be disruptive to both the systems and the users that rely on the operation of the computer hardware. This solution also requires a manual replacement of all or portions of the computer hardware.
A common approach in the telecommunications industry for reducing the impact of a software migration on the services supported by the computer hardware involves providing duplicate computer hardware. In this latter case, control over available services is passed from the original computer hardware and software to the duplicate computer hardware with replacement software. This approach results in redundant computer hardware sitting idle or underutilized during normal operations when no software migration is taking place, as well as unnecessary complexity in the arrangement and configuration of the original and duplicated computer hardware.
Therefore, it would be desirable to develop an improved mechanism for software migration, which makes more efficient use of installed computer hardware while minimizing the impact on the availability of services during such software migration.
The above and related desires are addressed in the present invention by providing a novel and nonobvious method, apparatus, computer-readable program and system for migrating control of an active processing element from an in-service original software system to a replacement software system. In this specification, the term xe2x80x9cprocessing elementxe2x80x9d refers to a processor (or processors) having, or in communication with, sufficient memory to store both the in-service original software system, the replacement software system and additional software supporting the transfer of control from the original software system to the replacement software system. When the processing element is xe2x80x9cactivexe2x80x9d, it is able to provide services to users or other computer hardware under the direction of a software system. In general, the term xe2x80x9csoftware systemxe2x80x9d (original, replacement or otherwise) refers to one or more software components programmed to provide one or more services. Such xe2x80x9cservicesxe2x80x9d may be any functionality that is useful to the operation of the software system itself or to the operation of other associated computer hardware or software. Services are primarily externally visible to, or support external benefits visible to, users, systems or other computer hardware or other services. xe2x80x9cIn-servicexe2x80x9d is used in this specification to mean that the original software system has control over the processing element so as to make available via the processing element the services for which the original software system is programmed to provide. In addition, in the remainder of the specification which follows, the term xe2x80x9csoftware migrationxe2x80x9d refers to a process of transferring control over the active processing element from the original software system to the replacement software system.
In accordance with one aspect of the invention, a method of performing a software migration is provided. In this method, the replacement software system is configured in memory associated with the active processing element and made ready to take control of the active processing element while the in-service original software system controls the active processing element. In order to make the replacement software system ready to take control, state information from the original software system is communicated to the replacement software system. Once the replacement software is installed and ready to take control of the active processing element, control over the active processing element is transferred from the original software system to the replacement software system. Performing a software migration on the active processing element while the original software system controls the active processing element removes the need for having a duplicate processing element to support the migration while substantially maintaining the availability of services on the processing element. By simplifying the hardware requirements and localizing much of the software migration to within the domain of the active processing element, the number and severity of service outages on the processing element arising during the software migration are also reduced. The term xe2x80x9cservice outagexe2x80x9d refers here to periods when services, provided by a software system via the active processing element, are unavailable.
Although the present invention can be applied to a single processor environment, it also may be applied in a multi-processor (or multi-controller) environment. In fact, when the present invention is applied to a computer system with one or more spare processing elements, processor sparing can be maintained throughout the software migration. In conventional environments, processor sparing or duplication is implemented to provide equipment protection, or in other words, to protect the operation of computer system in the event a running processor, or other computer hardware associated with the processor, fails. In such conventional environments, equipment protection for a processing element is lost during software migration while the spare or duplicate processing element is used in the software migration. Thus, the present invention offers a more robust migration solution which is also applicable to processor spared systems.
In a preferred embodiment, the replacement software system is configured with provisioning information associated with a hardware and software configuration for the active processing element, and dynamic state information for the replacement software system is synchronized with dynamic state information for the original software system. In this specification, the term xe2x80x9cprovisioning informationxe2x80x9d refers to persistent state and configuration information for the software system controlling the active processing element. Provisioning information is meant to survive a power down or reset of the active processing element. The term xe2x80x9cdynamic state informationxe2x80x9d refers to hardware and software state information for the active processing element which varies with time. In the case of the original software system, the dynamic state information includes the state of active services associated with the original software system, as well as hardware state information (of the active processing element) associated with such services. Thus, the dynamic state information for the original software system includes a software representation of the physical hardware state of the active processing element.
The replacement software system may be loaded in the course of, or prior to, the software migration. Loading and configuring the replacement software system while the original software system continues to run the active processing element avoids losing the services provided by the active processing element during these stages of the software migration. Adding the ability to synchronize the replacement software system with the original software system and the active processing element further reduces the susceptibility of services on the active processing element to extended outages during the migration. Preferably, the configuration and synchronization operations are carried out with the assistance of a virtual machine loaded into available memory within the active processing element and configured to support the transfer of control over the active processing element to the replacement software system. The virtual machine is a software or hardware component (or a combination of hardware and software) which provides a convenient mechanism for facilitating the software migration within the active processing element while minimizing the impact of the software migration on the ability of the active processing element to continue to provide services. The virtual machine may be newly initialized or previously loaded, provided that the virtual machine is configured to support the migration from the in-service original software system to the replacement software system.
In accordance; with another aspect of the invention, an apparatus is provided for supporting a software migration on an active processing element. The apparatus includes a virtual machine and a migration manager. The virtual machine provides an interface during the software migration between the original software system, the replacement software system and hardware elements of the active processing element. In a preferred embodiment, the virtual machine provides several components including a communications path, an interrupt dispatcher, a loader, a system scheduler and a hardware access control module. The communications path facilitates communications between the original software system and the replacement software system during the software migration. The interrupt dispatcher indirectly forwards hardware interrupts from the active processing element to one (or, where appropriate, both) of the original software system and the replacement software system. The loader installs an image of the replacement software system into available memory within the active processing element. The system scheduler schedules at least a portion of the processor resources of the active processing element between the execution of the original software system and the replacement software system during the software migration so that synchronization can take place between the state information for the two software systems while minimizing the impact of the migration on the services provided by the active processing element. The hardware access control module provides an access interface for the original and replacement software systems to access the active processing element. In this way, the hardware access control module protects the active processing element from being corrupted during the software migration.
According to another aspect of the invention, a system is provided which includes the virtual machine, the migration manager, and the active processing element. In variations where the virtual machine is implemented as a software system, the virtual machine is stored during the software migration in memory within or connected to the active processing element. Once loaded into the active processing element, the virtual machine serves as an interface between the active processing element and the original and replacement software systems.
In accordance with yet another aspect of the invention, another software migration system is provided. In this latter system, a unit is included for installing a replacement software system on an active processing element while an original software system controls the active processing element. Another unit is provided for configuring the replacement software system with provisioning information associated with a hardware and software configuration for the active processing element. A unit is also provided with the system in order to synchronize dynamic state information for the replacement software system with dynamic state information for the original software system. An additional unit is provided for transferring control over the active processing element to the replacement software system.
In another aspect of the invention, a computer readable medium having stored instructions is provided for supporting the installation, configuration and synchronization of a replacement software system on an active processing element while an in-service original software system controls the active processing element. Computer readable codes are also provided for transferring control over the active processing element to the replacement software system.
In yet another aspect of the invention, an apparatus is provided for supporting a software migration on an active processing element. The apparatus includes a virtual machine implemented to support a transfer of control over the active processing element from an original software system to a replacement software system.